package cn.iocoder.yudao.module.im.service.constants;

/**
 * IM 系统常量类
 *
 * @author 芋道源码
 */
public interface ImConstants {

    /**
     * 消息状态常量
     */
    interface MessageStatus {
        /**
         * 正常
         */
        Integer NORMAL = 1;
        /**
         * 已撤回
         */
        Integer RECALLED = 2;
        /**
         * 已删除
         */
        Integer DELETED = 3;
    }

    /**
     * 消息类型常量
     */
    interface MessageType {
        /**
         * 文本消息
         */
        Integer TEXT = 1;
        /**
         * 语音消息
         */
        Integer VOICE = 2;
        /**
         * 图片消息
         */
        Integer IMAGE = 3;
        /**
         * 视频消息
         */
        Integer VIDEO = 4;
        /**
         * 文件消息
         */
        Integer FILE = 5;
        /**
         * 表情消息
         */
        Integer EMOJI = 6;
        /**
         * 动态表情
         */
        Integer DYNAMIC_EMOJI = 7;
    }

    /**
     * 会话类型常量
     */
    interface ConversationType {
        /**
         * 单聊
         */
        Integer PRIVATE_CHAT = 1;
        /**
         * 群聊
         */
        Integer GROUP_CHAT = 2;
    }

    /**
     * 用户在线状态常量
     */
    interface UserStatus {
        /**
         * 在线
         */
        Integer ONLINE = 1;
        /**
         * 离线
         */
        Integer OFFLINE = 2;
        /**
         * 隐身
         */
        Integer INVISIBLE = 3;
        /**
         * 忙碌
         */
        Integer BUSY = 4;
        /**
         * 离开
         */
        Integer AWAY = 5;
    }

    /**
     * 群组状态常量
     */
    interface GroupStatus {
        /**
         * 正常
         */
        Integer NORMAL = 1;
        /**
         * 解散
         */
        Integer DISSOLVED = 2;
    }

    /**
     * 群成员类型常量
     */
    interface GroupMemberType {
        /**
         * 普通成员
         */
        Integer MEMBER = 1;
        /**
         * 管理员
         */
        Integer ADMIN = 2;
        /**
         * 群主
         */
        Integer OWNER = 3;
    }

    /**
     * 群成员状态常量
     */
    interface GroupMemberStatus {
        /**
         * 正常
         */
        Integer NORMAL = 1;
        /**
         * 已退出
         */
        Integer EXITED = 2;
        /**
         * 已踢出
         */
        Integer KICKED = 3;
    }

}